// const doSomethingAsync = () => {
//   return new Promise(resolve => {
//     setTimeout(() => resolve('做些事情'), 3000)
//   })
// }


// const doSomething = async () => {
//   console.log(await doSomethingAsync())
// }

// console.log('之前')
// doSomething()
// console.log('之后')


// Promise 所有事情
// 在任何函数之前加上 async 关键字意味着该函数会返回 promise

// const aFunction = async () => {
//   return '测试'
// }

// aFunction().then(alert => console.log(alert)) // 这会 alert '测试'

// const aFunction = () => {
//   return Promise.resolve('测试')
// }

// aFunction().then(alert => console.log(alert)) // 这会 alert '测试'

/*
const getFirstUserData = () => {
  return fetch('/users.json') // 获取用户列表
    .then(response => response.json()) // 解析 JSON
    .then(users => users[0]) // 选择第一个用户
    .then(user => fetch(`/users/${user.name}`)) // 获取用户数据
    .then(userResponse => userResponse.json()) // 解析 JSON
}

getFirstUserData()
*/
/*
const getFirstUserData = async () => {
  const response = await fetch('/users.json') // 获取用户列表
  const users = await response.json() // 解析 JSON
  const user = users[0] // 选择第一个用户
  const userResponse = await fetch(`/users/${user.name}`) // 获取用户数据
  const userData = await userResponse.json() // 解析 JSON
  return userData
}

getFirstUserData()
*/


// 多个异步函数串联
const promiseTds = () => {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve("做些事情")
    }, 1000);
  })
}

const watchOverSomeoneDst = async () => {
  const st = await promiseTds()
  return st + ' 查看'
}

const watchOverSomeoneWatchingDst = async () => {
  const st = await watchOverSomeoneDst()
  return st + " 再次查看"
}

watchOverSomeoneWatchingDst().then(res => {
  console.log(res);
})